﻿namespace Input {
	// Mostly adhere to the same key code scheme as JavaScript.

	// TODO: the other keys
	static class Key {
		static field BACKSPACE = 8;
		static field TAB = 9;
		static field ENTER = 13;

		static field SHIFT = 16;
		static field CTRL = 17;
		static field ALT = 18;
		static field PAUSE = 19;
		static field CAPS_LOCK = 20;

		static field ESCAPE = 27;

		static field SPACE = 32;
		static field PAGE_UP = 33;
		static field PAGE_DOWN = 34;
		static field END = 35;
		static field HOME = 36;
		static field LEFT = 37;
		static field UP = 38;
		static field RIGHT = 39;
		static field DOWN = 40;

		static field INSERT = 45;
		static field DELETE = 46;

		static field NUM0 = 48;
		static field NUM1 = 49;
		static field NUM2 = 50;
		static field NUM3 = 51;
		static field NUM4 = 52;
		static field NUM5 = 53;
		static field NUM6 = 54;
		static field NUM7 = 55;
		static field NUM8 = 56;
		static field NUM9 = 57;


		static field A = 65;
		static field B = 66;
		static field C = 67;
		static field D = 68;
		static field E = 69;
		static field F = 70;
		static field G = 71;
		static field H = 72;
		static field I = 73;
		static field J = 74;
		static field K = 75;
		static field L = 76;
		static field M = 77;
		static field N = 78;
		static field O = 79;
		static field P = 80;
		static field Q = 81;
		static field R = 82;
		static field S = 83;
		static field T = 84;
		static field U = 85;
		static field V = 86;
		static field W = 87;
		static field X = 88;
		static field Y = 89;
		static field Z = 90;

		static field NUMPAD0 = 96;
		static field NUMPAD1 = 97;
		static field NUMPAD2 = 98;
		static field NUMPAD3 = 99;
		static field NUMPAD4 = 100;
		static field NUMPAD5 = 101;
		static field NUMPAD6 = 102;
		static field NUMPAD7 = 103;
		static field NUMPAD8 = 104;
		static field NUMPAD9 = 105;

		static field NUMPAD_MULTIPLY = 106;
		static field NUMPAD_ADD = 107;

		static field NUMPAD_SUBTRACT = 109;
		static field NUMPAD_DECIMAL = 110;
		static field NUMPAD_DIVIDE = 111;

		static field F1 = 112;
		static field F2 = 113;
		static field F3 = 114;
		static field F4 = 115;
		static field F5 = 116;
		static field F6 = 117;
		static field F7 = 118;
		static field F8 = 119;
		static field F9 = 120;
		static field F10 = 121;
		static field F11 = 122;
		static field F12 = 123;

		static field NUM_LOCK = 144;
		static field SCROLL_LOCK = 145;
		
		static field SEMICOLON = 186;
		static field EQUAL = 187;
		static field COMMA = 188;
		static field HYPHEN = 189;
		static field PERIOD = 190;
		static field SLASH = 191;
		static field BACK_TICK = 192;

		static field OPEN_BRACKET = 219;
		static field BACKSLASH = 220;
		static field CLOSE_BRACKET = 221;
		static field APOSTROPHE = 222;
	}
}